1. Technical Field
The present invention relates generally to communication system and in particular, to an error control mechanism for a segment based Link Layer (LL) in a digital network.
2. Related Art
Networks prone to relatively high error levels, such as wireless or power line networks, often require the implementation of error recovery mechanisms in the LL Layer of their stack of communication protocol layers, in addition to the error correction schemes which may be embedded in their PHYsical (PHY) Layer. Such schemes rely on added redundancy provided by, for instance, Viterbi or convolutional encoders/decoders.
Within the LL layer, a Medium Access Control (MAC) sub-layer provides access to the PHY layer. Data are exchanged between the LL layer and the PHY layer in the form of LL data units, through the MAC sub-layer.
Usually, when implemented in the LL, error recovery mechanisms rely on redundancy provided by the repetition of the lost or corrupted LL data units. Basically, some signalling runs between the transmitter and the receiver, which signalling advertises the data not correctly received by the receiver. The protocol used by that signalling belongs to the family of the Automatic Repeat reQuest (ARQ) protocols.
To improve resilience to errors and make the retransmission protocols more effective in terms of resource usage, efficient LL implementations are based on short data units that permit retransmission of the portion of data affected by errors only.
However, data actually exchanged by applications are long data packets (e.g. Ethernet packets) that, if transmitted as such, are, on the one hand, very sensitive to errors and, on the other hand, cause resource waste when they have to be retransmitted.
Long packets can be transmitted over a LL layer based upon short data units provided an adaptation is performed in an intermediate layer often called Segmentation And Re-assembly (SAR) layer. In the transmission direction, the SAR performs the function of segmenting the long packet handled by the upper layer into consecutive short data units also called segments. Some segmentation information is also provided that allows retrieving the upper layer packet delineation for further re-assembly. In the receive direction, the SAR reconstructs the upper layer packet by concatenating the successively received segments and exploiting the segmentation information. When such a segmentation scheme is carried out, the LL layer is said to be a segment based Link Layer.
ARQ protocols rely on the identification of the data units that is common to the transmitter and the receiver. Such identification is used by the protocol signalling so that the receiver indicates to the transmitter, via feedback information, which data units are not correctly received. The data unit identification is typically a sequence number specific to the data units handled by the considered layer only.
In order not to block transmission by waiting for the feedback information each time a data unit is emitted, a sliding window mechanism is often implemented, as is well known in the art.
Another known way to limit resource usage made by the retransmissions (compared to simple algorithms of the “Go-back-N” type) consists in implementing a Selective Repeat scheme. Such scheme uses indication in the feedback information of the individual incorrectly received data units, whereby only the incorrectly received data units are advertised by the receiver, and thus retransmitted.
Finally, some ARQ implementations also use forward signalling information to force the sliding window progression in the receiver in order to avoid window blocking effects, especially when the underlying transport is particularly prone to errors. This mechanism is often called “discard” mechanism and leads to upper layer packet loss.
Several problems arise when designing an ARQ protocol for an error prone system, that are amplified when the transmission resource is scarce, as in the types of networks mentioned above.
Resource used for signalling and retransmission must be as limited as possible. Limitation of the resource used for retransmission can be achieved by basing the data transfers on short data units and implementing a selective retransmission scheme. However, selective retransmission schemes require a more sophisticated signalling that may need more resource to be used. In addition, the behaviour of an ARQ transmitter can be improved (i.e. one can make it better use resource for its retransmission) by providing to it additional information about the receiver sliding window status in feedback messages sent by the receiver. Once again, this additional information is more complex and requires more resource to be used. An ARQ signalling based on compact and efficient messages has then to be designed.
In parallel, still in case of a LL layer based on short data units containing chunks of packets of an upper layer, discard mechanisms may lead to resource wasting. Indeed, if the criteria used to force the sliding window to advance are only relative to that very LL layer, the window progression may reach a data unit that is located anywhere in the corresponding upper layer packet. Particularly, this data unit may not be the first data unit in the upper layer packet, causing the transmitter to emit (or re-emit) the subsequent data units even though the upper layer packet cannot be re-assembled since its first chunk(s) is (are) lost.
U.S. Pat. No. 5,440,545 discloses a selective retransmission scheme. When a data packet is too long to fit into a single transmission packet, it is separated in N fragments. Each receiving device transmits an acknowledgement (ACK) signal back to the source device, which identifies the data packet of concern and which fragments of the data packet in question have or have not been received.